package jcommon.chap1_j2seplus.array;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.ArrayUtils;

import util.MyUtils;

public class SearchArray {

	public static void main(String[] args) {
		int[] array = MyUtils.randomArray(999, 999);
		// array[99999] = 414;
		System.out.println(ArrayUtils.toString(allPosOf(array, 414)));
	}

	/**
	 * 功能: 在一个数组中寻找所有命中的元素位置，以int[]类型返回
	 * 
	 * @param array
	 * @param valueToFind
	 * @return 所有命中的元素位置，没有则返回空数组int[0]
	 */
	public static int[] allPosOf(int[] array, int valueToFind) {
		if (ArrayUtils.isEmpty(array)) {
			return ArrayUtils.EMPTY_INT_ARRAY;
		}
		List<Integer> result = new ArrayList<Integer>();

		int curPos = 0;
		while (-1 != (curPos = ArrayUtils.indexOf(array, valueToFind, curPos))) {
			result.add(curPos++);
		}
		if (result.size() != 0) {
			return ArrayUtils.toPrimitive(result.toArray(new Integer[result.size()]));
		} else
			return ArrayUtils.EMPTY_INT_ARRAY;
	}
}
